<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>

<script>

    // let Person = {
    //     name: '赵哲',
    //     age: 25,
    //     adress: '河南省南阳市卧龙区',
    //     money: 9999999,
    //     vip: true
    // }
    // // es5版本的代理
    // Object.defineProperty(Person, 'money', {
    //     // configurable: false              // 后面写 money 是不可删除的  默认为 false
    //     // ============================== 
    //     // writable:false   // true 是可以被修改
    //     // ======================================== 


    // })
    // delete Person.age;
    // delete Person.money;
    // console.log(Person);
    // ========================================== 
    // Person.money = 1000;
    // Person.name = '孙宇东';
    // console.log(Person);


    // ========================================================================= 


    let Person = {
        name: '赵哲',
        age: 25,
        adress: '河南省南阳市卧龙区',
        money: 0,
        vip: true
    }
    let q = Person.money;
    Object.defineProperty(Person,'money',{
        get(){
            //这个函数会在获取数据时自动执行， 代替 Person.key 的操作
            console.log('数据被访问');
            return q
        },
        set(val){
            //这个函数会在等号赋值时运行 代替原始操作
            console.log('数据被修改了');
            q = val+5;
        }
    })
    Person.money;
    Person.money = 30;
    console.log(Person);
</script>